package com.lemobar.pay.model;

import com.lemobar.pay.enums.LmbPayTypeEnum;
import com.lemobar.pay.model.alipay.request.AliPayTradeAppPayRequest;
import com.lemobar.pay.model.alipay.request.AliPayTradeCreateRequest;
import com.lemobar.pay.model.alipay.request.AliPayTradePayRequest;
import com.lemobar.pay.model.alipay.request.AliPayTradeWapPayRequest;
import com.lemobar.pay.model.wxpay.request.WxPayMicroPayCreateRequest;
import com.lemobar.pay.model.wxpay.request.WxPayUnifiedCreateRequest;
import lombok.Data;

/**
 * 支付 请求参数
 * {@link WxPayUnifiedCreateRequest}
 * {@link WxPayMicroPayCreateRequest}
 *
 * {@link AliPayTradeCreateRequest}
 * {@link AliPayTradeWapPayRequest}
 * {@link AliPayTradePayRequest}
 * {@link AliPayTradeAppPayRequest}
 */
@Data
public class PayRequest {

    /**
     * 支付方式/支付渠道
     */
    private LmbPayTypeEnum payTypeEnum;

    /**
     * 商户订单号                               <br>
     * wx -> out_trade_no                       <br>
     * wxMicro -> out_trade_no                 <br>
     * ali -> out_trade_no
     */
    private String orderId;

    /**
     * 订单金额/标价金额 (元)                              <br>
     * wx -> total_fee                           <br>
     * wxMicro -> total_fee                  <br>
     * ali -> total_amount
     */
    private Double orderAmount;

    /**
     * 订单名字/商品描述                                <br>
     * wx -> body                               <br>
     * wxMicro -> body                       <br>
     * ali -> subject
     */
    private String orderName;

    /**
     * (买家)用户标识                                  <br>
     * wx -> openid                                     <br>
     * ali -> user_id/buyer_id  买家的支付宝唯一用户号（2088开头的16位纯数字） {@link AliPayTradeCreateRequest.BizContent}
     */
    private String openid;

    /**
     * 客户端访问Ip                                                  <br>
     * wx -> spbill_create_ip                              <br>
     * wxMicro -> spbill_create_ip                         <br>
     */
    private String spbillCreateIp;

    /**
     * 付款码                                                      <br>
     * wxMicro -> auth_code                             <br>
     */
    private String authCode;

    /**
     * 支付回调(通知地址/异步通知地址)
     * wx -> JSAPI支付、小程序支付、APP支付 -> notify_url
     * ali -> 手机网站WAP支付、付款码BARCODE支付、APP支付 -> notify_url
     */
    private String notifyUrl;


    // ***************************【下面好像没用到】*************************************************************

    /**
     * 支付后跳转（支付宝PC网站支付）
     * 优先级高于PayConfig.returnUrl
     */
    private String returnUrl;




}
